[アップデート] Amazon Route53 Resolver DNS Firewall が Security Hub と統合しました

[アップデート] Amazon Route53 Resolver DNS Firewall が Security Hub と統合しました

Clock Icon2025.01.21

こんにちは!クラウド事業本部コンサルティング部のたかくに(@takakuni_)です。

Amazon Route53 Resolver DNS Firewall が Security Hub と統合しました。

https://aws.amazon.com/jp/about-aws/whats-new/2025/01/aws-security-hub-route-53-resolver-dns-firewall/

Amazon Route53 Resolver DNS Firewall

Amazon Route53 Resolver DNS Firewall は VPC からのアウトバウンド DNS クエリを保護する機能です。

DNS Firewall を利用することでドメイン名でアウトバウンド DNS クエリをフィルタリングできます。Network Firewall との違い等は以下に書かれていますので、合わせてご覧ください。

https://dev.classmethod.jp/articles/amazon-route-53-resolver-dns-firewall/

Security Hub との統合

いままで Security Hub と統合されていなかったため、ブロック/アラート/許可されたかの判定は DNS クエリのログから確認する必要がありました。

今回のアップデートで、ブロック、アラートされたクエリを Security Hub の GUI から確認できるようになりました。今まで行っていた Athena や CloudWatch Logs Insights で検索する手間が省けてとても良いですね。

やってみた

今回私が検証した限りでは次の検証結果となりました。今後のアップデートや検証内容によって結果が異なる可能性があります。(DNS Firewall Advanced は利用しませんでした。)

  • アクションが BLOCK または ALERT の場合に Findings が検出される。(ALLOW の場合は検出されない)
  • 製品名が Route 53 Resolver DNS Firewall - AWS ListRoute 53 Resolver DNS Firewall - Custom List の 2 種類ある
    • Route 53 Resolver DNS Firewall - AWS List は AWS Managed Domain List との統合
      • デフォルトで有効化されている
      • BLOCK または ALERT の場合に Findings が検出される
    • Route 53 Resolver DNS Firewall - Custom List は Custom Domain List との統合
      • デフォルトでは無効化になっている
      • BLOCK の場合に Findings が検出される
  • Findings の重要度は一律 HIGH で記録される

Custom List の統合

Custom Domain List を利用してルールを作っている場合は、Security Hub 側で Route 53 Resolver DNS Firewall - AWS List の受け入れが必要です。

Security Hub コンソールから統合、Route 53 Resolver DNS Firewall を検索し受け入れを開始します。開始できている状態になると、以下のような表示になります。

2025-01-21 at 11.25.12-製品の統合  Security Hub  ap-northeast-1.png

ルールグループの作成

今回はマネージドルールグループ 4 つとカスタムルールグループを 1 つ用意しました。

AWSManagedDomainsMalwareDomainList だけ BLOCK にしています。custom-domain-rule では dev.classmethod.jp を ALERT するようなルールを設定しました。

2025-01-21 at 11.31.42-VPC  ap-northeast-1.png

テスト

それでは関連づけられた VPC 内の EC2 で DNS クエリのテストを行います。各マネージドルールにはテスト用のドメインが用意されているためこちらを利用します。

AWSManagedDomainsBotnetCommandandControl

  • controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
  • controldomain2.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
  • controldomain3.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com

AWSManagedDomainsMalwareDomainList

  • controldomain1.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com
  • controldomain2.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com
  • controldomain3.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com

AWSManagedDomainsAggregateThreatList および AWSManagedDomainsAmazonGuardDutyThreatList

  • controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
  • controldomain2.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
  • controldomain3.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/resolver-dns-firewall-managed-domain-lists.html

# AWSManagedDomainsBotnetCommandandControl
dig controldomain3.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com

# AWSManagedDomainsMalwareDomainList
dig controldomain3.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com

# AWSManagedDomainsAggregateThreatList, AWSManagedDomainsAmazonGuardDutyThreatList
dig controldomain3.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com

# custom
dig dev.classmethod.jp

AWSManagedDomainsMalwareDomainList のみ NODATA で結果が返ってきています。

sh-5.2$ # AWSManagedDomainsBotnetCommandandControl
dig controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com

; <<>> DiG 9.18.28 <<>> controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6890
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com. IN A

;; ANSWER SECTION:
controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com. 300 IN A 1.2.3.4

;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2) (UDP)
;; WHEN: Tue Jan 21 02:37:48 UTC 2025
;; MSG SIZE  rcvd: 119

sh-5.2$ # AWSManagedDomainsMalwareDomainList
dig controldomain1.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com

; <<>> DiG 9.18.28 <<>> controldomain1.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16649
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;controldomain1.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com. IN        A

;; Query time: 9 msec
;; SERVER: 10.0.0.2#53(10.0.0.2) (UDP)
;; WHEN: Tue Jan 21 02:37:53 UTC 2025
;; MSG SIZE  rcvd: 104

sh-5.2$ # AWSManagedDomainsAggregateThreatList, AWSManagedDomainsAmazonGuardDutyThreatList
dig controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com

; <<>> DiG 9.18.28 <<>> controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65393
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com. IN A

;; ANSWER SECTION:
controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com. 300 IN A 1.2.3.4

;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2) (UDP)
;; WHEN: Tue Jan 21 02:37:58 UTC 2025
;; MSG SIZE  rcvd: 122

sh-5.2$ # custom
dig dev.classmethod.jp

; <<>> DiG 9.18.28 <<>> dev.classmethod.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38698
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;dev.classmethod.jp.            IN      A

;; ANSWER SECTION:
dev.classmethod.jp.     60      IN      A       18.65.216.15
dev.classmethod.jp.     60      IN      A       18.65.216.79
dev.classmethod.jp.     60      IN      A       18.65.216.111
dev.classmethod.jp.     60      IN      A       18.65.216.86

;; Query time: 9 msec
;; SERVER: 10.0.0.2#53(10.0.0.2) (UDP)
;; WHEN: Tue Jan 21 02:38:02 UTC 2025
;; MSG SIZE  rcvd: 111

検出結果が Security Hub に表示されました。

4 つのマネージドドメインですが、 AWSManagedDomainsAmazonGuardDutyThreatList と AWSManagedDomainsAmazonGuardDutyThreatList は共用のため想定通りです。

また、ALERT と BLOCK で検知されていますが、重大度は HIGH で統一されています。

ただ、 Custom List の検出結果は表示されませんでした。

2025-01-21 at 11.57.28-検出結果  Security Hub  ap-northeast-1.png

検出結果を JSON でエクスポートしてみました。どのマネージドルールで検知されたのかは ProductFields の "aws/route53resolver/dnsfirewall/firewallDomainListId" を見れば良さそうです。

BLOCK の検出結果

block.json
{
  "AwsAccountId": "123456789012",
  "CompanyName": "Amazon",
  "CreatedAt": "2025-01-21T02:52:42Z",
  "Description": "DNS Firewall BLOCK",
  "FindingProviderFields": {
    "Types": [
      "TTPs/Impact/Impact:Runtime-MaliciousDomainRequest.Reputation"
    ],
    "Severity": {
      "Normalized": 70,
      "Label": "HIGH"
    }
  },
  "FirstObservedAt": "2025-01-21T02:52:42Z",
  "GeneratorId": "arn:aws:route53resolver:ap-northeast-1:123456789012:firewall-rule-group/rslvr-frg-983619b76c874750",
  "Id": "498bd16e-6334-42c4-85af-c97bb42682c3",
  "LastObservedAt": "2025-01-21T02:52:42Z",
  "ProcessedAt": "2025-01-21T02:53:49.322Z",
  "ProductArn": "arn:aws:securityhub:ap-northeast-1::product/amazon/route-53-resolver-dns-firewall-aws-list",
  "ProductFields": {
    "aws/route53resolver/dnsfirewall/queryName": "controldomain3.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com.",
    "aws/route53resolver/dnsfirewall/firewallRuleGroupId": "rslvr-frg-983619b76c874750",
    "aws/route53resolver/dnsfirewall/queryType": "A",
    "aws/route53resolver/dnsfirewall/queryClass": "IN",
    "aws/route53resolver/dnsfirewall/firewallDomainListId": "rslvr-fdl-dc19e97bef3c454a",
    "aws/route53resolver/dnsfirewall/transport": "UDP",
    "aws/route53resolver/dnsfirewall/firewallRuleAction": "BLOCK",
    "aws/securityhub/FindingId": "arn:aws:securityhub:ap-northeast-1::product/amazon/route-53-resolver-dns-firewall-aws-list/498bd16e-6334-42c4-85af-c97bb42682c3",
    "aws/securityhub/ProductName": "Route 53 Resolver DNS Firewall - AWS List",
    "aws/securityhub/CompanyName": "Amazon"
  },
  "ProductName": "Route 53 Resolver DNS Firewall - AWS List",
  "RecordState": "ACTIVE",
  "Region": "ap-northeast-1",
  "Resources": [
    {
      "Details": {
        "AwsEc2Instance": {
          "VpcId": "vpc-091e3f457babd2374",
          "IpV4Addresses": [
            "10.0.133.45"
          ]
        }
      },
      "Id": "i-0ff3bf7391109f1d9",
      "Partition": "aws",
      "Region": "ap-northeast-1",
      "Type": "AwsEc2Instance"
    }
  ],
  "SchemaVersion": "2018-10-08",
  "Severity": {
    "Label": "HIGH",
    "Normalized": 70
  },
  "Title": "DNS Firewall BLOCK generated for domain controldomain3.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com. from VPC vpc-091e3f457babd2374",
  "Types": [
    "TTPs/Impact/Impact:Runtime-MaliciousDomainRequest.Reputation"
  ],
  "UpdatedAt": "2025-01-21T02:52:42Z",
  "Workflow": {
    "Status": "NEW"
  },
  "WorkflowState": "NEW"
}

ALERT の検出結果

alert.json
{
  "AwsAccountId": "123456789012",
  "CompanyName": "Amazon",
  "CreatedAt": "2025-01-21T02:52:41Z",
  "Description": "DNS Firewall ALERT",
  "FindingProviderFields": {
    "Types": [
      "TTPs/Impact/Impact:Runtime-MaliciousDomainRequest.Reputation"
    ],
    "Severity": {
      "Normalized": 70,
      "Label": "HIGH"
    }
  },
  "FirstObservedAt": "2025-01-21T02:52:41Z",
  "GeneratorId": "arn:aws:route53resolver:ap-northeast-1:123456789012:firewall-rule-group/rslvr-frg-983619b76c874750",
  "Id": "4eecb0b7-eaca-41bc-8ac1-ea0401f8f822",
  "LastObservedAt": "2025-01-21T02:52:41Z",
  "ProcessedAt": "2025-01-21T02:53:48.424Z",
  "ProductArn": "arn:aws:securityhub:ap-northeast-1::product/amazon/route-53-resolver-dns-firewall-aws-list",
  "ProductFields": {
    "aws/route53resolver/dnsfirewall/queryName": "controldomain3.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com.",
    "aws/route53resolver/dnsfirewall/firewallRuleGroupId": "rslvr-frg-983619b76c874750",
    "aws/route53resolver/dnsfirewall/queryType": "A",
    "aws/route53resolver/dnsfirewall/queryClass": "IN",
    "aws/route53resolver/dnsfirewall/firewallDomainListId": "rslvr-fdl-3ba9acb851c04c45",
    "aws/route53resolver/dnsfirewall/transport": "UDP",
    "aws/route53resolver/dnsfirewall/firewallRuleAction": "ALERT",
    "aws/securityhub/FindingId": "arn:aws:securityhub:ap-northeast-1::product/amazon/route-53-resolver-dns-firewall-aws-list/4eecb0b7-eaca-41bc-8ac1-ea0401f8f822",
    "aws/securityhub/ProductName": "Route 53 Resolver DNS Firewall - AWS List",
    "aws/securityhub/CompanyName": "Amazon"
  },
  "ProductName": "Route 53 Resolver DNS Firewall - AWS List",
  "RecordState": "ACTIVE",
  "Region": "ap-northeast-1",
  "Resources": [
    {
      "Details": {
        "AwsEc2Instance": {
          "VpcId": "vpc-091e3f457babd2374",
          "IpV4Addresses": [
            "10.0.133.45"
          ]
        }
      },
      "Id": "i-0ff3bf7391109f1d9",
      "Partition": "aws",
      "Region": "ap-northeast-1",
      "Type": "AwsEc2Instance"
    }
  ],
  "SchemaVersion": "2018-10-08",
  "Severity": {
    "Label": "HIGH",
    "Normalized": 70
  },
  "Title": "DNS Firewall ALERT generated for domain controldomain3.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com. from VPC vpc-091e3f457babd2374",
  "Types": [
    "TTPs/Impact/Impact:Runtime-MaliciousDomainRequest.Reputation"
  ],
  "UpdatedAt": "2025-01-21T02:52:41Z",
  "Workflow": {
    "Status": "NEW"
  },
  "WorkflowState": "NEW"
}

ルールの内容を変更

カスタムルールのルールを ALERT から BLOCK に変更します。

2025-01-21 at 13.02.23-rslvr-frg-983619b76c874750  Rule groups  DNS Firewall  VPC Console.png

同じく dig コマンドを実行します。

# custom
dig dev.classmethod.jp

NODATA で返ってきていますね。

sh-5.2$ dig dev.classmethod.jp

; <<>> DiG 9.18.28 <<>> dev.classmethod.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1873
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;dev.classmethod.jp.            IN      A

;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2) (UDP)
;; WHEN: Tue Jan 21 04:00:33 UTC 2025
;; MSG SIZE  rcvd: 47

sh-5.2$

Security Hub の検出結果も表示されていました。 BLOCK の時は検出されましたね。

2025-01-21 at 13.03.19-検出結果  Security Hub  ap-northeast-1.png

block.json
{
	"AwsAccountId": "123456789012",
	"CompanyName": "Amazon",
	"CreatedAt": "2025-01-21T01:45:33Z",
	"Description": "DNS Firewall BLOCK",
	"FindingProviderFields": {
		"Types": ["TTPs/Impact/Impact:Runtime-MaliciousDomainRequest.Reputation"],
		"Severity": {
			"Normalized": 70,
			"Label": "HIGH"
		}
	},
	"FirstObservedAt": "2025-01-21T01:45:33Z",
	"GeneratorId": "arn:aws:route53resolver:ap-northeast-1:123456789012:firewall-rule-group/rslvr-frg-983619b76c874750",
	"Id": "d407b5ef-e8dd-4a69-b3e4-0501ebc163cf",
	"LastObservedAt": "2025-01-21T01:45:33Z",
	"ProcessedAt": "2025-01-21T03:55:47.651Z",
	"ProductArn": "arn:aws:securityhub:ap-northeast-1::product/amazon/route-53-resolver-dns-firewall-custom-list",
	"ProductFields": {
		"aws/route53resolver/dnsfirewall/queryName": "dev.classmethod.jp.",
		"aws/route53resolver/dnsfirewall/firewallRuleGroupId": "rslvr-frg-983619b76c874750",
		"aws/route53resolver/dnsfirewall/queryType": "A",
		"aws/route53resolver/dnsfirewall/queryClass": "IN",
		"aws/route53resolver/dnsfirewall/firewallDomainListId": "rslvr-fdl-4f1aac80012245bd",
		"aws/route53resolver/dnsfirewall/transport": "UDP",
		"aws/route53resolver/dnsfirewall/firewallRuleAction": "BLOCK",
		"aws/securityhub/FindingId": "arn:aws:securityhub:ap-northeast-1::product/amazon/route-53-resolver-dns-firewall-custom-list/d407b5ef-e8dd-4a69-b3e4-0501ebc163cf",
		"aws/securityhub/ProductName": "Route 53 Resolver DNS Firewall - Custom List",
		"aws/securityhub/CompanyName": "Amazon"
	},
	"ProductName": "Route 53 Resolver DNS Firewall - Custom List",
	"RecordState": "ACTIVE",
	"Region": "ap-northeast-1",
	"Resources": [
		{
			"Details": {
				"AwsEc2Instance": {
					"VpcId": "vpc-091e3f457babd2374",
					"IpV4Addresses": ["10.0.133.45"]
				}
			},
			"Id": "i-0ff3bf7391109f1d9",
			"Partition": "aws",
			"Region": "ap-northeast-1",
			"Type": "AwsEc2Instance"
		}
	],
	"SchemaVersion": "2018-10-08",
	"Severity": {
		"Label": "HIGH",
		"Normalized": 70
	},
	"Title": "DNS Firewall BLOCK generated for domain dev.classmethod.jp. from VPC vpc-091e3f457babd2374",
	"Types": ["TTPs/Impact/Impact:Runtime-MaliciousDomainRequest.Reputation"],
	"UpdatedAt": "2025-01-21T01:45:33Z",
	"Workflow": {
		"Status": "NEW"
	},
	"WorkflowState": "NEW"
}

まとめ

以上、「Amazon Route53 Resolver DNS Firewall が Security Hub と統合しました。」でした。

ログから検索する手間が省略できたのはとてもありがたいですね。Custom List を利用している場合は、統合の設定を忘れないようにしましょう。

このブログがどなたかの参考になれば幸いです。クラウド事業本部コンサルティング部のたかくに(@takakuni_)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.